package com.lippeng.taohua.db.domain;

import java.util.List;

import com.lippeng.taohua.db.page.Page;

/**
 * Here provide the interface of ImplementDomain.
 * 
 * Yes,it is the interface of DynamicProxy
 * 
 * @author lippeng
 * 
 */
public interface IDomain {

	/**
	 * Insert,delete or update the @param sqlString
	 * 
	 * @param sqlString
	 * @return
	 */
	public Boolean executeUpdate(String sqlString);

	/**
	 * Query by @param sqlString
	 * 
	 * @param sqlString
	 * @return
	 */
	public List<? extends SuperDomain> executeQuery(String sqlString);

	/**
	 * Insert the
	 * 
	 * @return
	 */
	public Boolean insert();

	/**
	 * Delete the
	 * 
	 * @return
	 */
	public Boolean delete();

	/**
	 * Update the
	 * 
	 * @return
	 */
	public Boolean update();

	/**
	 * Update the and before this,you should load the @param domain First
	 * 
	 * @return
	 */
	public Boolean updateNull();

	/**
	 * Load the current Domain by ID
	 * 
	 * You could not receive it unless you want
	 * 
	 * @return
	 */
	public SuperDomain load();

	/**
	 * Count the number of the Domains by current Domain
	 * 
	 * @return
	 */
	public Long count();

	/**
	 * Check the Domain exist or not
	 * 
	 * @return
	 */
	public Boolean exist();

	/**
	 * Select Domain List by condition of
	 * 
	 * @return
	 */
	public List<SuperDomain> select();

	/**
	 * Select Domain List by condition of
	 * 
	 * @return
	 */
	public List<SuperDomain> selectEqual();

	/**
	 * Select Domain List by condition of
	 * 
	 * @return
	 */
	public List<SuperDomain> selectPageList(Page page);

}
